Editing an image representation of a text

ABSTRACT

Systems and methods are disclosed in which image representations of text strings can be easily edited. As such, one embodiment, among others, includes the step of receiving input from a user. The received input is indicative of a selection of an image. The image corresponds to a text string. That embodiment further comprises the step of correlating the image to the corresponding text string. Upon correlating the image to the text string, the text string is displayed to the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present disclosure is related to the following co-pending U.S.patent applications: U.S. patent application having serial number [TKHR190253-1020], filed on Jun. 15, 2004, and having the title “Convertingthe Format of a Portion of an Electronic Document;” and U.S. patentapplication having serial number [TKHR 190253-1160], filed on Jun. 15,2004, and having the title “Version Control in a Distributed ComputingEnvironment.” Those applications are incorporated by reference as if setforth in their entireties.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to electronic documents and,more particularly, to image editors.

BACKGROUND

Web pages are often designed with text and images. While it isrelatively simple to include text in a web page, it is sometimesdesirable to include an image representation of the text, rather thanthe text itself. For example, if a web-page designer wishes to inhibitothers from searching various portions of a web page but neverthelesswishes to include a readable text for the viewer, then that web-pagedesigner may substitute the text for an image that represents the text.In another example, if the web-page designer wishes to include aparticular font that is not normally supported by conventional browsers,then that web-page designer may include an image representation of thetext in the different font.

Unfortunately, when text is represented with an image, there istypically no convenient way to edit the text within the image. Thus,there is a need in the art for a convenient editing tool.

SUMMARY

Systems and methods are disclosed in which image representations of textstrings can be easily edited. As such, one embodiment, among others,includes the step of receiving input from a user. The received input isindicative of a selection of an image. The image corresponds to a textstring. That embodiment further comprises the step of correlating theimage to the corresponding text string. Upon correlating the image tothe text string, the text string is displayed to the user.

Other systems, devices, methods, features, and advantages will be orbecome apparent to one with skill in the art upon examination of thefollowing drawings and detailed description. It is intended that allsuch additional systems, methods, features, and advantages be includedwithin this description, be within the scope of the present invention,and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a block diagram showing an exemplary embodiment of a systemfor converting the format of a portion of a document.

FIG. 2 is a block diagram showing components of the memory of FIG. 1,which are configured to perform the format conversion, according to anexemplary embodiment

FIG. 3 is a flowchart showing an exemplary embodiment of a method forconverting the format of a portion of a document.

FIG. 4 is a flowchart showing, in greater detail, the step ofidentifying a searchable segment from FIG. 3, according to an exemplaryembodiment.

FIG. 5 illustrates an exemplary embodiment of a web page that isrendered with sensitive information included in searchable text.

FIG. 6A illustrates an exemplary embodiment of the web page of FIG. 5,which has been rendered with the sensitive information reformatted intoan unsearchable format.

FIG. 6B illustrates another exemplary embodiment of the web page of FIG.5, which has been rendered with the sensitive information reformattedinto an unsearchable format.

FIG. 7 is a block diagram showing an exemplary embodiment of aclient-based system for editing an image representation of a text.

FIG. 8 is a block diagram showing an exemplary embodiment of the editorworkstation of FIG. 7.

FIG. 9 is a block diagram showing an exemplary embodiment of componentsof the memory of FIG. 8.

FIG. 10 is a flowchart showing an exemplary embodiment of a method forediting an image representation of a text.

FIG. 11 is a flowchart showing another exemplary embodiment of a methodfor editing an image representation of a text.

FIG. 12 is a block diagram showing an exemplary embodiment of aserver-based system for editing an image representation of a text.

FIG. 13 is a block diagram showing an exemplary embodiment of a systemfor controlling software versions in a distributed computingenvironment.

FIG. 14 is a block diagram showing an exemplary embodiment of a versionscript that is located on one of the servers in the distributedcomputing environment of FIG. 13.

FIG. 15 is a block diagram showing an exemplary embodiment of thecentral server of FIG. 13.

FIG. 16 is a flowchart showing an exemplary embodiment of a method forcontrolling software versions in a distributed computing environment.

FIG. 17 is a flowchart showing, in greater detail, the execution of theversion script from FIG. 16, according to an exemplary embodiment

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Reference is now made in detail to the description of exemplaryembodiments as illustrated in the drawings. While several embodimentsare described in connection with these drawings, there is no intent tolimit the disclosure to the embodiment or embodiments disclosed herein.On the contrary, the intent is to cover all alternatives, modifications,and equivalents.

As noted above, spammers and other individuals often harvest personalinformation from the Internet by using bots that trawl the Internet forpersonal information. The disclosed systems and methods seek to remedythis and other problems by reformatting searchable text within adocument into a generally unsearchable (or substantially unsearchable)format, thereby preventing bots from easily identifying personalinformation. While images may be searched by performing an opticalcharacter recognition or similar operation, the term “unsearchable” isused herein to infer difficulty of search.

In accordance with one embodiment, among others, various identificationcriteria are established to identify sensitive information, such as, forexample, an individual's name, email address, telephone number, socialsecurity number, etc. Using the established criteria, the searchablesegments of an electronic document are identified. Upon identifyingvarious searchable segments that match the identification criteria,unsearchable images that represent the searchable segments aregenerated. For some embodiments, among others, the identified segmentsare converted into an unsearchable format, such as, for example, animage. Since, in reality, images can also be searched using complexalgorithms, it should be appreciated that the phrase “unsearchable,”within the context of this disclosure, is a relative term thatindicates, for example, that the image is more difficult to search thanplain ASCII text. Upon generating the image, the searchable segments ofthe electronic documents are substituted with the image, therebyimpeding the searchability of personal information on the electronicdocument.

According to an exemplary embodiment, rather than converting an entireelectronic document into an image, only a portion of the electronicdocument is reformatted. One advantage of reformatting only a portion ofthe electronic document is that the resulting size of the file is oftenrelatively small, as compared to a full text-to-image conversion. Inthat regard, if such an approach is used to generate a web-publishabledocument, then the resulting web page would occupy less resources.Additionally, due to the smaller file size, such web pages would loadfaster by a web browser than full text-to-image-converted files. Itshould be appreciated that the web-publishable document may be ahypertext markup language (HTML) file, a text file, a portable documentfile (PDF), or any other file that is generated by a word-processingprogram or a web-page-authoring program.

Various exemplary embodiments are described below with reference toFIGS. 1 through 6B.

Once text has been converted into one or more images, those imagesbecome relatively difficult to edit. The disclosed systems and methodsfurther provide a convenient approach to editing the imagerepresentations of text. As such, for some embodiments, when a userselects (e.g., double-clicks) an image representation of a text string,the corresponding text string is displayed to the user through a texteditor. Once the user edits the text string, a new image is generated,which reflects the edited text string. That new image is thensubstituted for the original image representation of the text.

Various exemplary embodiments of systems and methods associated withsuch an editor are described in FIGS. 7 through 12.

Since sequential editing of image representations of text strings can,over time, generate multiple updated versions of the image, it may bedifficult to track those changes, especially in a distributed computingenvironment. In that regard, the disclosed systems and methods alsoprovide an approach to controlling the version of various files in adistributed computing environment. Thus, for some embodiments, versionnumbers are associated with a file, and each time that the file isrevised or updated, that version number is updated. Hence, if a centralserver houses the updated file, and distributed servers house a mirrorof the file, then each distributed server can maintain the most currentversion of a file by polling the central server under various predefinedconditions. In one embodiment, among others, the polling of the centralserver is accomplished by a version script, which resides at each of thedistributed servers.

Various exemplary embodiments of systems and methods associated withversion control are described in FIGS. 13 through 17.

FIG. 1 is a block diagram showing an exemplary embodiment of a systemfor converting the format of a portion of a document. As shown in FIG.1, in one embodiment, among others, the system is implemented by apersonal computer 110 a (also referred to herein as a workstation). Theworkstation 110 a includes a processor 130, memory 150, a local storagedevice 160 (e.g., hard drive, removable floppy drive, compact discdrive, digital versatile disc drive, etc.), and a network interface 140,all communicating over a bus 170. The memory 150 typically includes theoperating system (not shown), which is typically stored in non-volatilememory while the computer 110 a is turned off, and loaded into volatilememory upon start-up, where it can be executed by the processor 130. Inthe present embodiment, the computer 110 a is configured to communicateover a network, such as the Internet, through an I/O device, such as,for example, an analog modem, DSL modem, ISDN modem, ethernet card,etc., which may be connected to the computer 110 a through the networkinterface 140. Since the general operation of personal computers isknown in the art, further discussion of the general operation of thepersonal computer 110 a is omitted here.

FIG. 2 is a block diagram showing an exemplary embodiment of componentsof the memory 150 of FIG. 1. In the embodiment of FIG. 2, thosecomponents are configured to perform the format conversion. As shown inFIG. 2, in one embodiment, among others, the memory 150 includes aselective text-to-image conversion program 235, which is adapted toselectively reformat portions of an electronic document. Otherembodiments include this conversion function incorporated into software,such as, for example, within word processing software, spreadsheetsoftware, etc. Specifically, the selective text-to-image conversionprogram 235, for some embodiments, identifies searchable portions of theelectronic document in accordance with various predefined identificationcriteria. Upon identifying the searchable portions for conversion, theselective text-to-image conversion program 235 converts, in someembodiments, the searchable portion into an unsearchable image.

Once loaded into memory 150, the selective text-to-image conversionprogram manifests itself as logical components within memory 150. Theselogical components include identification logic 205, image-generationlogic 220, and substitution logic 230. Each of the logic componentscorresponds to a computer-readable code (e.g., a routine or asub-routine) within the program 235. As such, the identification logic205 is configured to identify a searchable segment of an electronicdocument in accordance with a predetermined identification criteria. Thecriteria can include, for example, a name of an individual, an emailaddress, a social security number, a telephone number, a street address,or any other personal information associated with an individual.

In that regard, the identification logic 205 can be further segmentedinto text-string identification logic 210 andpersonal-information-identification logic 215. The text-stringidentification logic 210 is configured to identify a text string inaccordance with predefined identification criteria. For example, a textstring that represents an email address typically includes “@” betweenthe username and the email domain. In that regard, one predefinedcriteria may be that a contiguous text string (i.e., a text stringwithout interposed spaces) that includes a single “@” will be consideredan email address. Similarly, a text string that represents a telephonenumber is typically a seven-digit number with a dash (“−”) interposedbetween the first three digits and the last four digits of the number.Thus, another predefined criteria may be that seven-digit numbers withan interposed dash (“−”) be treated as a telephone number. For thosegeographic locations that use ten-digit dialing, one can appreciate thatthe predefined criteria will indicate that ten-digit numbers withappropriate intervening dashes be treated as a telephone number.Likewise, the full name and address may also be appropriately defined.Since one of ordinary skill in the art can realize various permutationsthat define the identification criteria, further discussion of theidentification criteria is omitted here. Suffice it to say, othersensitive information, whether personal or industrial, can also besimilarly defined by various identification criteria.

In some embodiments, options can be presented to a user in aninteractive manner, thereby permitting the user to identify how specificsegments will be chosen for conversion. For example, a graphical promptmay be supplied to the user, which queries whether the user wishes theentire sensitive information to be converted, or whether the user wishesfor only portions of the sensitive information (e.g., the “@” delimiteror the “.com” extension of an email address) to be converted.

In other embodiments, a user can manually select the searchable segmentsfor conversion. Hence, for those embodiments, the identificationcriterion would be any selected text. In other words, for thoseembodiments, a determination of whether or not particular text has beenselected would constitute one of the identification criteria.

In some embodiments, among others, the searchable text is converted intoan image, which is typically not text-searchable. The image format caninclude, for example, a tagged image file format (TIFF), a bitmapped(BMP) format, a joint photographic experts group (JPEG) format, agraphics interchange format (GIF), or a variety of other known imageformats. The image-generation logic 220 is configured to generate one ormore such images. Since, in an exemplary embodiment, the image isgenerated by converting a text into the image, the image-generationlogic 220 can be seen as including conversion logic 225, which performsthe text-to-image conversion of the identified searchable segment. Sincevarious approaches to text-to-image conversion are known in the art,further discussion of the conversion logic 225 is omitted here.

In addition to the conversion logic 225, the image-generation logic 220can also include database generation logic 240, which is configured togenerate a database that correlates the generated image with itscorresponding text. It should be appreciated that, in other embodiments,the database generation logic 240 can be configured to simply provide anew entry to an existing database. The new entry would correlate thegenerated image with its corresponding text.

The substitution logic 230 is configured to substitute the generatedimage for the searchable segment, thereby producing a document in whichthe identified searchable segments are replaced by correspondingunsearchable images.

In operation, the processor 130 performs the corresponding functionassociated with each of the logical components that have been loadedinto memory 150. Thus, the processor 130 retrieves the executable codefrom the memory via the bus 170, and executes the code to convert thesearchable segments into unsearchable images.

Having described an exemplary embodiment of a system for reformatting aportion of an electronic document, attention is turned to FIGS. 3through 5, which show various embodiments of methods for reformatting aportion of an electronic document.

As shown in FIG. 3, in one embodiment, among others, the process beginsby identifying (310) a searchable segment of a document. The searchablesegment of the document can be identified (310) in accordance with anidentification criterion. The identification criterion can be a name, anemail address, a social security number, a telephone number, or otherpersonal information that is associated with an individual. Uponidentifying the searchable segment, the process continues by generating(320) an image from the searchable segment. The image is an unsearchablerepresentation of the searchable segment. Upon generating (320) theimage, the searchable segment is substituted with the unsearchable image(330). In that regard, the resulting electronic document hinders theharvesting of sensitive information.

FIG. 4 is a flowchart showing, in greater detail, the step ofidentifying (310) the searchable segment. As shown in FIG. 4, oneembodiment, among others, of the identifying step (310) can be seen asincluding the steps of identifying (410) a text string for anindividual's name; identifying (420) a text string for an individual'semail address; identifying (430) a text string for an individual'ssocial security number; and identifying (440) a text string for anindividual's telephone number. As discussed above, with reference toFIG. 2, each of the identified text strings may have predefinedcharacteristics. For example, an email address is typically a contiguoustext string having a single interposed “@” within the text string.Similarly, a social security number is a nine-digit number havinginterposed dashes (“−”). These, and other desired criteria, can be usedto specify the appropriate text strings for identification.

Having described embodiments of methods for reformatting portions of anelectronic document, attention is turned to FIGS. 5 through 6B, whichshow examples of conversions of electronic documents.

FIG. 5 illustrates an exemplary embodiment of a web page that isrendered with sensitive information included in searchable text. Whilethe source code for the rendered web page is not specifically shown, thesource code for such a page should be readily discernable by thosehaving skill in the art. In the embodiment of FIG. 5, the sensitiveinformation includes a name 510 (“Bob Smith”), a telephone number 520(“(404) 555-1234”), an email address 530 (“bsmith@bob.smith.com”), and astreet address 540 (“123 Peachtree Street, Atlanta, Ga. 30303”). Asshown in FIG. 5, the sensitive information is displayed as searchabletext. Hence, a would-be spammer can easily harvest the sensitiveinformation from the web page of FIG. 5 by employing an appropriatelyprogrammed bot. It should be appreciated that other information on theweb page can be identified as sensitive information. As noted above, auser may manually select the sensitive information for conversion, asone of the predefined identification criteria.

FIG. 6A illustrates an embodiment of the web page of FIG. 5, which hasbeen rendered with the sensitive information reformatted into anunsearchable format. As shown in FIG. 6A, the text “Bob Smith” 510 hasbeen converted to an image representation 610 of the text. Similarly,the text “bsmith@bob.smith.com” has been converted to an image 630 thatrepresents that email address. Likewise, both the texts “(404) 555-1234”and “123 Peachtree Street, Atlanta, Ga. 30303” have been converted totheir corresponding image representations 620, 640. In that regard, thesensitive information would now be largely undetectable by a text-stringsearch.

FIG. 6B illustrates another embodiment of the web page of FIG. 5, whichhas been rendered with the sensitive information reformatted into anunsearchable format. Unlike FIG. 6A, in which the entire name, streetaddress, telephone number, and email address have been converted intotheir respective images, the embodiment of FIG. 6B shows only portionsof the various information being converted into images. For example,rather than converting the entire text string “bsmith@bob.smith.com”into an image 630, only the username portion and the delineator(“bsmith@”) is converted into an image 632. The partial conversion ofthe information is sufficient to effectively impede the harvesting ofthe information. For example, if “b Sm” 612 a is converted into animage, rather than converting the entire name, a text-string search willresult in the uncovering of “Bo” and “ith,” which, in the absence ofother factors, effectively provide no sensitive information.

As shown from FIGS. 1 through 6B, by converting searchable segments intounsearchable images, the disclosed systems and methods impede theharvesting of sensitive information by spammers and other Internetdelinquents. Also, by converting only a portion of a document, ratherthan converting the entire document, much bandwidth and storage space isconserved.

FIGS. 7 through 12 show other exemplary embodiments of systems andmethods, in which converted images can be more easily edited than byusing conventional techniques. Once text has been converted into one ormore images, those images become relatively difficult to edit. Thedisclosed systems and methods further provide a convenient approach toediting the image representations of text. As such, for someembodiments, when a user selects (e.g., double-click) an imagerepresentation of a text string, the corresponding text string isdisplayed to the user through a text editor. Once the user edits thetext string, a new image is generated, which reflects the edited textstring. That new image is then substituted for the original imagerepresentation of the text.

FIG. 7 is a block diagram showing a portion of a network configurationin an exemplary embodiment of a client-based system for editing an imagerepresentation of a text. As shown in FIG. 7, one embodiment, amongothers, comprises a network 740 (e.g., the Internet), a server 730, anauthor workstation 110 b, and an editor workstation 720. The server 730,the author workstation 110 b, and the editor workstation 720 areconfigured to communicate over the network 740. In that regard,information can be exchanged between the editor workstation 720 and theauthor workstation 110 b in a variety of known manners. Similarly, bothworkstations 720, 110 b can exchange information with the server 730using similar known network-communication protocols. Similar to theworkstation described above, the author workstation 110 b of FIG. 7 isconfigured to receive input from a user and convert a portion of a textdocument into an image. Since that conversion process is described abovefurther discussion of the conversion process is omitted here. Once adocument having the image is created, that document is uploaded to theserver 730 from the author workstation 110 b using known techniques. Insome embodiments, those techniques can include file transfer protocol(FTP) or other similar approaches.

Once the document is stored on the server 730, it can be accessed by avariety of clients that are connected to the server 730, such as, forexample, the editor workstation 720. Thus, when the editor workstation720 downloads the document from the server 730, the contents of thatdocument can be displayed to a user at the editor workstation 720. Inaddition to displaying the contents of the electronic document, theeditor workstation 720 is configured to permit the user to edit theelectronic document. Specifically, in some embodiments, among others,the editor workstation 720 facilitates editing of images that representtext, as originally generated by the author workstation 110 b. This isshown in greater detail with reference to FIG. 8. Since it may bedesirable to provide access to editing capabilities to authorizedpersonnel, preferably, for some embodiments, an authorization mechanismcan be implemented to permit only certain workstations access to editthe electronic document. Since various authorization mechanisms areknown in the art, further discussion of such mechanisms is omitted here.However, it should be appreciated by one having ordinary skill in theart that known authorization mechanisms can be implemented inconjunction with the processes described herein. Furthermore, it shouldbe appreciated that custom authorization mechanisms may also bedeveloped for use with the disclosed systems and methods.

FIG. 8 is a block diagram showing an exemplary embodiment of the editorworkstation 720 of FIG. 7. As shown in FIG. 8, the editor workstation720 comprises a memory 850, a processor 830, a network interface 840,and a local storage 860, all of which are communicatively coupled over abus 870. Thus, once the electronic document 650 has been downloaded fromthe server 730, that document 650 is typically stored on the localstorage unit 860. In the embodiment of FIG. 8, the electronic document650 includes an image representation of sensitive information, such as,for example, an image representation of a name 880, an imagerepresentation of an email address 882, and an image representation of atelephone number 884. In addition to the electronic document 880, theeditor workstation 720 downloads a database 886, which correlates theimages with their corresponding texts. It should also be appreciatedthat the database 886 can be emailed to a potential editor-recipient,rather than having the editor download the database 886. In that regard,the author can control those individuals that have the ability to editthe electronic document. For example, in some embodiments that do notinclude server-based management of a database, the database 886 isautomatically created by the authoring conversion function as asimilarly named companion file, such as with a “.dat” extension, so thatthe author is able to transfer directly to selected recipients theconverted electronic document with or without the companion databasefile, thus selectively enabling or not enabling the recipients to editthe converted electronic document utilizing the database 886.

In the example of FIG. 8, the image representation of the name 880corresponds to “Bob Smith” 610, the image representation of the emailaddress 882 corresponds to “bsmith@bob.smith.com” 630, and the imagerepresentation of the telephone number 884 corresponds to “(404)555-1234.” Thus, when a user downloads and displays the electronicdocument 650, as shown in FIG. 8, specific portions of the document aredisplayed as images 610, 620, 630.

When the user at the editor workstation 720 wishes to edit the contentsof the images, the user simply selects the image by, for example,double-clicking on that image. Once selected, the editor workstation 720is configured to open a text editor having the text that corresponds tothe selected image. For example, if the user selects the image “BobSmith” 610 from FIG. 8, then the text editor will display ASCII text“Bob Smith” for the user to edit. Exemplary logical componentsassociated with the editing process are shown in FIG. 9.

FIG. 9 is a block diagram showing an exemplary embodiment of componentsof the memory of FIG. 8, which permit a user to edit text thatcorresponds to an image. As shown in FIG. 9, the editing process isperformed by an editor program 910, which is stored in memory 850 forexecution by the processor 830. The editor program 910 comprisesimage-selection receive logic 920, correlation logic 930 includingdatabase access logic 935, display logic 940, text-string receive logic950, image-generation logic 960, store logic 970, image-replacementlogic 980, and image-delete logic 990.

The image-selection receive logic 920 is configured to receive inputfrom the user. That input is indicative of an image selected by theuser. For example, if the user double-clicks on “Bob Smith” 610 of FIG.8, then the image-selection receive logic 920 receives input thatindicates that the user selected the “Bob Smith” 610 image.

The correlation logic 930, which includes the database access logic 935,is configured to correlate the selected image with a particular text.The correlation information is stored in the database 886. Thus, oncethe image has been selected, the database access logic 935 accesses thedatabase 886 in order to correlate the selected image with itscorresponding text. For example, if the “Bob Smith” 610 image isselected, then the correlation logic 930 returns the ASCII text “BobSmith.”

The display logic 940 displays the returned ASCII text “Bob Smith” tothe user in a text editor. Since text editors are known in the art,further discussion of text editors is omitted here. The user can,thereafter, edit the displayed text and prompt the editor workstation720 to save the edited text. For example, if “Bob Smith” is edited to“Joe Jones,” then the new text “Joe Jones” will be saved in response tothe prompt from the user.

The text-string receive logic 950 is configured to receive the editedtext string. In the above example, the text-string receive logic 950receives the text string of “Joe Jones.” The image-generation logic 960is configured to generate an image that corresponds to the edited textstring. The image can be generated in accordance with those approachesdiscussed above. In this example, the generated image would be an imagerepresentation of “Joe Jones.” The store logic 970 is configured tostore the generated image at a local database on the editor workstation720. A remote storage configuration is described below, with referenceto FIG. 12.

The image-replacement logic 980 is configured to replace the originalimage with the newly generated image. Thus, for this example, theoriginal image of “Bob Smith” would be replaced by the new image of “JoeJones.” The image-delete logic 990 is configured to delete the originalimage. Thus, in this example, the “Bob Smith” image would be deleted bythe image-delete logic 990.

Some embodiments, among others, of processes that can be performed bythe logic components are shown with reference to FIGS. 10 and 11. Itshould be appreciated by those of skill in the art that other componentscould be used to perform the processes of FIGS. 10 and 11.

FIG. 10 is a flowchart showing an exemplary embodiment of a method forediting an image representation of a text. As shown in FIG. 10, oneembodiment, among others, begins when input is received (1010) from auser. The input represents a selection of an image, such as, forexample, the image representation of “bsmith@bob.smith.com” 630. Uponreceiving (1010) the input, the process correlates (1020) the image withits corresponding text string. Thus, if the image representation of“bsmith@bob.smith.com” is selected, then the corresponding text string“bsmith@bob.smith.com” is correlated (1020) to the selected image. Uponcorrelating the text string to the image, the text string is displayed(1030) to the user.

When the user edits the text string, then that information is used toupdate the contents of the electronic document as well as the contentsof the database. In some embodiments, rather than simply updating thecontents of the database, the editor can create a wholly separatedatabase that reflects the changes made by the editor. An exemplaryembodiment of one process, among others, is shown in FIG. 11.Specifically, in that example, the text string “bsmith@bob.smith.com” isedited to “jjones@joejones.com”.

Once the user has edited the original text string, the new text stringis received (1110) from the user. Using the new text string, theprocessor 830 generates (1120) an image that corresponds to the new textstring. Thus, in this example, an image representation of“jjones@joejones.com” is generated (1120) by the processor. Thegenerated image, along with the information that correlates the image tothe text, is stored (1130). Thereafter, the original image“bsmith@bob.smith.com” is replaced (1140) with the new image“jjones@joejones.com”, and the original image “bsmith@bob.smith.com” isdeleted (1150).

It should be appreciated that, for embodiments in which only a portionof the sensitive information has been converted, a separate identifieror key can be assigned to the image. Thus, using an example of an emailaddress, that identifier or key identifies whether the entire emailaddress has been converted to an image, whether the “@” delimiter hasbeen converted to an image, whether the “.com” extension has beenconverted to an image, etc.

As seen from the embodiments of FIGS. 10 and 11, a convenient method isdisclosed, which permits editing of image representations of textstrings.

FIG. 12 is a block diagram showing an exemplary embodiment of aserver-based system for editing an image representation of a text. Assuch, FIG. 12 shows server-side components that are analogous to theclient-side components of FIG. 8. As shown in FIG. 12, the editingprocess is performed by an editor program 1215, which is stored inmemory 1250 for execution by the processor 1230. The editor program 1215comprises image-selection receive logic 1225, correlation logic 1235including database access logic 1237, display logic 1245, text-stringtransmit logic 1247, text-string receive logic 1255, image-generationlogic 1265, store logic 1275, image-replacement logic 1285, andimage-delete logic 1295.

The image-selection receive logic 1225 is configured to receive inputover the network. That input is indicative of an image selected by theuser at a client. For example, if the user double-clicks on “Bob Smith”610 of FIG. 8 from a client machine, then the image-selection receivelogic 1225 receives that input over the network.

The correlation logic 1235, which includes the database access logic1237, is configured to correlate the selected image with a particulartext. The correlation information is stored in the database 1286. Thus,once the image has been selected, the database access logic 1237accesses the database 1286 in order to correlate the selected image withits corresponding text. For example, if the “Bob Smith” 610 image isselected, then the correlation logic 1235 returns the ASCII text “BobSmith.”

The text-string transmit logic 1247 transmits the ASCII text “Bob Smith”from the server to the client-side machine. The client-side machinedisplays the returned ASCII text “Bob Smith” to the user in a texteditor. Since text editors are known in the art, further discussion oftext editors is omitted here. The user can, thereafter, edit thedisplayed text and prompt the client-side machine (e.g., editorworkstation 720) to save the edited text. For example, if “Bob Smith” isedited to “Joe Jones,” then the new text “Joe Jones” will be saved inresponse to the prompt from the user.

The text-string receive logic 1277 is configured to receive the editedtext string from the client-side machine over the network. In the aboveexample, the text-string receive logic 1275 receives the text string of“Joe Jones.” The image-generation logic 1265 is configured to generatean image that corresponds to the edited text string. The image can begenerated in accordance with those approaches discussed above. In thisexample, the generated image would be an image representation of “JoeJones.” The store logic 1275 is configured to store the generated imageat a database on the server 730. In this regard, the embodiment of FIG.12 shows a remote storage and editing configuration, while theembodiment of FIG. 9 shows a local storage and editing configuration.

The image-replacement logic 1285 is configured to replace the originalimage at the server with the newly generated image. Thus, for thisexample, the original image of “Bob Smith” would be replaced by the newimage of “Joe Jones.” The image-delete logic 1295 is configured todelete the original image. Thus, in this example, the “Bob Smith” imagewould be deleted by the image-delete logic 1295.

Similar to the embodiment of FIG. 9, the embodiment of FIG. 12facilitates editing of image representations of text strings. However,unlike FIG. 9, the embodiment of FIG. 12 permits remote editing offiles. As one can see, for remote editing of files, it is possible thatmultiple differing copies of files can exist in various locations on thenetwork. In some instances, it may be desirable to coordinate all ofthose existing copies so that the availability of incorrect or outdatedinformation is minimized. One approach, among others, to coordinatingthe existing copies is provided in FIGS. 13 through 17.

FIGS. 13 through 17 show other embodiments that can exist in adistributed server environment. For such environments, when files areedited, the latest version of files is virtually synchronized across allservers in order to ensure consistency across servers. Since sequentialediting of image representations of text strings can, over time,generate multiple updated versions of the image, it may be difficult totrack those changes, especially in a distributed computing environment.In that regard, the disclosed systems and methods also provide anapproach to controlling the version of various files in a distributedcomputing environment. Thus, for some embodiments, version numbers areassociated with a file, and each time that the file is revised orupdated, that version number is updated. Hence, if a central serverhouses the updated file, and distributed servers house a mirror of thefile, then each distributed server can maintain the most current versionof a file by polling the central server under various predefinedconditions. In one embodiment, among others, the polling of the centralserver is accomplished by a version script, which resides at each of thedistributed servers.

FIG. 13 is a block diagram showing a distributed server environment foran exemplary embodiment of a system for controlling software versions.As shown in FIG. 13, one embodiment, among others, of a distributedserver environment comprises a network, such as the Internet, throughwhich various devices can communicate. Specifically, FIG. 13 shows acentral server 1330 and a variety of other distributed servers 1340 a .. . 1340 n (hereinafter collectively referred to as “distributed servers1340”) coupled to the network. In addition to the plurality ofdistributed servers 1340, a client machine 1320 (or simply “client”) isalso coupled to the network, thereby permitting communication betweenthe client 1320 and the variety of servers 1330, 1340. Such anenvironment exists for high-traffic systems, in which duplicate serversare used to accommodate various client requests. For such environments,the individual distributed servers 1340 are accessed in a round-robinfashion to alleviate bottlenecking due to heavy network traffic. Theround-robin access scheme is typically controlled by routers. Sincethese and other schemes are known in the art, further discussion of suchschemes, in the context of distributed server environments, is omittedhere.

The central server 1330 stores the most recent contents of theelectronic document and is, therefore, used to synchronize the contentsof the distributed servers 1340. For example, as discussed above, it maybe possible that each of the distributed servers 1340 contains adifferent version of a file. In other words, unless the contents of allservers are synchronized, it is possible that outdated or obsolete filescan be provided to a client, depending on the server that is accessed bythe client.

Thus, in one embodiment, among others, the client 1320 requests anelectronic document from one of the distributed servers 1340 n. Thedistributed server 1340 n, upon receiving the request, queries thecentral server 1330 to ensure that the contents on the distributedserver 1340 n match the contents of the central server 1330. Greaterdetails on the systems and methods for such processes are discussed withreference to FIGS. 14 through 17.

FIG. 14 is a block diagram showing an exemplary embodiment of a versionscript 1415 that is located on one of the servers 1340 n in thedistributed computing environment of FIG. 13. As shown in FIG. 14, adistributed server 1340 n comprises a local storage unit 1460 (e.g., ahard drive), which contains image representations of sensitiveinformation, such as, for example, a name 1480, an email address 1482,and a telephone number 1484. Additionally, the local storage unit 1340 ncontains a database 1486 that correlates each of the image files 1480,1482, 1484 with their respective text strings. As shown in FIG. 14, eachfile 1480, 1482, 1484 comprises a name portion (shown as “name.jpg,”“email.jpg,” and “phone.jpg”) and a version number portion (shown as“x”). In addition to the local storage unit 1460, the distributed server1340 n includes memory 1450, a processor 1430, and a network interface1440, which are all communicatively coupled to each other through a bus1470. Specifically, FIG. 14 shows the version script 1415 loaded intomemory 1450 and ready for execution by the processor 1430.

FIG. 15 is a block diagram showing an exemplary embodiment of thecentral server 1330 of FIG. 13. Similar to the distributed server 1340 nof FIG. 14, the central server 1330 of FIG. 15 includes a local storageunit 1560, memory 1550, a processor, and a network interface 1540, whichare communicatively coupled to each other through a local bus 1570. Thelocal storage unit 1560 contains image representations of text strings,such as, for example “name.jpg.y” 1580, “email.jpg.y” 1582, and“phone.jpg.y” 1584. In addition to these image files, the local storageunit 1560 also contains a database 1586 that correlates the image files1580, 1582, 1584 to their corresponding text strings.

As shown in FIG. 15, each of the image files 1580, 1582, 1584 has a nameportion that is substantially identical to the name portion of the imagefiles 1480, 1482, 1484 on the distributed server 1340 n. However, unlikethe image files 1480, 1482, 1484 on the distributed server 1340 n, theimage files 1580, 1582, 1584 on the central server may have a differentversion number portion (shown as “y”).

It should be appreciated that, in some embodiments, the files on thecentral server are not directly editable by others having access throughthe distributed servers 1340. The reason being that such direct accesscan, in some instances, result in undesired tampering of files on thecentral server. Thus, in exemplary embodiments, only those havingpermission, as identified by a systems administrator, to access thecentral server would be able to edit the files on the central server. Inother embodiments, however, those files on the central server can alsobe configured to be accessible by others.

The version number of the image files 1580, 1582, 1584 on the centralserver 1330 represent the most current version of the files. Thus, ifthe distributed server 1340 n has been updated to contain the mostcurrent version of the image files, then the version number portion(“x”) on the distributed server 1340 n will match the version numberportion (“y”) on the central server 1330. FIGS. 16 and 17 illustrateseveral exemplary embodiments in which the distributed server 1340 nchecks the central server 1330 and updates its contents accordingly.

It should be appreciated that, for some embodiments, not all imagesfiles are correlated to an original sensitive text. For example, ahyper-text markup language (HTML) web-page may include original imagesthat were not the result of a conversion. For those images, there wouldbe no correlative text. Thus, in some embodiments, another identifiermay be supplied, which labels the images to identify whether the imageoriginated from a text, or whether the image is an original image thatis not the result of a conversion. Consequently, for some embodiments,only those converted images may be easily editable, as described herein.

FIG. 16 is a flowchart showing an exemplary embodiment of a method forcontrolling software versions in a distributed computing environment.Specifically, FIG. 16 shows a process that is executed by thedistributed server 1340 n when a request for a document is received froma client. For example, the process of FIG. 16 can occur when a clientrequests a web page from the distributed server 1340 n. As such, in oneembodiment of the process, the distributed server 1340 n receives (1610)a request for a document, including the document contents. If thedocument is a web page, then all of the corresponding images andembedded files would be the document contents. Upon receiving (1610) therequest, the distributed server 1340 n executes (1620) a version script1415, such as that shown in FIG. 14, to determine whether or not thedistributed server 1340 n has the most current version of the contents.Further details on the version script 1415 are provided with referenceto FIG. 17. After executing (1620) the version script 1415, thedistributed server 1340 n returns (1630) the requested document with themost current versions of the document contents.

FIG. 17 is a flowchart showing, in greater detail, the execution of theversion script 1415 from FIG. 16, according to an exemplary embodiment.As shown in FIG. 17, one embodiment, among others, of the version script1415 begins by retrieving (1705) a local document content. For example,the document content may be the image representation of a name, an emailaddress, or a telephone number, such as those shown in FIG. 14. Forpurposes of illustration, in FIG. 17, the first document content is thefile “name.jpg.x” 1480. Upon retrieving (1705) “name.jpg.x” 1480, theversion script 1415 determines (1710) the version number for the file.In this example, the version number is “x.” Upon determining (1710) theversion number for “name.jpg.x,” the version script queries (1715) thecentral server 1330 for the version number of the corresponding contenton the central server 1330. In this example, the query would return thevalue “y,” since the corresponding file at the central server is labeled“name.jpg.y.” The version script 1415 then determines (1720) whether theversion number of the local document content (i.e., “x” in this example)is the same as the version number of the central server content (i.e.,“y” in this example).

If the version numbers match, then the version script 1415 sets (1740)the local document content as the most current version. Thereafter, theversion script 1415 determines whether or not all of the documentcontents have been checked for the most current version. If all of thecontents have been checked, then the process ends. If all of thecontents have not been checked, then the version script 1415 retrieves(1705) the next document content, and the process repeats. For example,once the “name.jpg.x” has been checked for the most current version, theversion script 1415 checks “email.jpg.x.” Thereafter, “phone.jpg.x”would be checked, and any other contents that are associated with therequested document.

If the version number of the local document content is determined (1720)to be different from the version number of the content on the centralserver 1330, then the version script 1415 requests (1725) updatedcontent from the central server 1330. When the central server providesthe updated content, the distributed server 1340 n receives (1730) theupdated content. The updated content is then set (1735) as the localdocument content. In other words, for some embodiments, the localdocument content is replaced by the updated content from the centralserver 1330. Thereafter, the local document content (which is now theupdated document content) is set (1740) as the most current version ofthe content. The version script 1415 then determines whether or not alldocument contents have been checked against the contents of the centralserver 1330.

In the specific example of FIGS. 14 and 15, presuming that none of thecontents on the distributed server 1340 n are current, the files“name.jpg.x” 1480, “email.jpg.x” 1482, and “phone.jpg.x” 1484 would bereplaced by “name.jpg.y” 1580, “email.jpg.y” 1582, and “phone.jpg.y”1584 from the central server 1330. Thereafter, those updated files wouldbe returned to the client that originally requested the electronicdocument and all of its contents.

As shown in the embodiments of FIGS. 14 through 17, each of thedistributed servers 1340 can stay current by checking their contentsagainst the contents of the central server 1330. In that regard, ratherthan pushing any updates to a large number of distributed servers 1340,the contents of all of the distributed servers can be updated by simplyupdating the contents at the central server 1330. Also, since only theversions of various files are being checked, rather than downloading theentire contents of the electronic document at each request, bandwidth isconserved and network traffic is reduced. Also, since only thoseoutdated or obsolete files are retrieved from the central server 1330,rather than retrieving all files, less bandwidth is occupied whencompared to systems that download complete contents at each request.Furthermore, since each distributed server 1340 queries the centralserver 1330 in response to requests from clients, bottlenecks associatedwith synchronized downloading are reduced. In other words, unlike otherapproaches in which all of the distributed servers are synchronizedconcurrently by the central server 1330 (also referred to as a “pushingdata” from the central server 1330), the query approach (also referredto as “pulling data” by the distributed servers 1340) temporallydistributes the use of network bandwidth.

According to exemplary embodiments, the identification logic 205, thetext-string identification logic 210, thepersonal-information-identification logic 215, the image-generationlogic 220, the conversion logic 225, the substitution logic 230, theimage-selection receive logic 920, 1225, the correlation logic 930,1235, the database access logic 935, 1237, the display logic 940, 1245,text-string transmit logic 945, 1247, the text-string receive logic 950,1255, the image-generation logic 960, 1265, the store logic 970, 1275,the image-replacement logic 980, 1285, and the image-delete logic 990,1295 can be implemented in hardware, software, firmware, or acombination thereof. According to exemplary embodiment(s), theidentification logic 205, the text-string identification logic 210, thepersonal-information-identification logic 215, the image-generationlogic 220, the conversion logic 225, the substitution logic 230, theimage-selection receive logic 920, 1225, the correlation logic 930,1235, the database access logic 935, 1237, the display logic 940, 1245,text-string transmit logic 945, 1247, the text-string receive logic 950,1255, the image-generation logic 960, 1265, the store logic 970, 1275,the image-replacement logic 980, 1285, and the image-delete logic 990,1295 are implemented in software or firmware that is stored in a memoryand that is executed by a suitable instruction execution system.

If implemented in hardware, as in an alternative embodiment, theidentification logic 205, the text-string identification logic 210, thepersonal-information-identification logic 215, the image-generationlogic 220, the conversion logic 225, the substitution logic 230, theimage-selection receive logic 920, 1225, the correlation logic 930,1235, the database access logic 935, 1237, the display logic 940, 1245,text-string transmit logic 945, 1247, the text-string receive logic 950,1255, the image-generation logic 960, 1265, the store logic 970, 1275,the image-replacement logic 980, 1285, and the image-delete logic 990,1295 can be implemented with any or a combination of the followingtechnologies, which are all well known in the art: a discrete logiccircuit(s) having logic gates for implementing logic functions upon datasignals, an application specific integrated circuit (ASIC) havingappropriate combinational logic gates, a programmable gate array(s)(PGA), a field programmable gate array (FPGA), etc.

Any process descriptions or blocks in flow charts should be understoodas representing modules, segments, or portions of code which include oneor more executable instructions for implementing specific logicalfunctions or steps in the process, and alternate implementations areincluded within the scope of the preferred embodiment of the presentinvention in which functions may be executed out of order from thatshown or discussed, including substantially concurrently or in reverseorder, depending on the functionality involved, as would be understoodby those reasonably skilled in the art of the present invention.

The selective text-to-image conversion program 235, the editor program910, 1215, and the version script 1415, which comprises an orderedlisting of executable instructions for implementing logical functions,can be embodied in any computer-readable medium for use by or inconnection with an instruction execution system, apparatus, or device,such as a computer-based system, processor-containing system, or othersystem that can fetch the instructions from the instruction executionsystem, apparatus, or device and execute the instructions. In thecontext of this document, a “computer-readable medium” can be any meansthat can contain, store, communicate, propagate, or transport theprogram for use by or in connection with the instruction executionsystem, apparatus, or device. The computer-readable medium can be, forexample but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, device,or propagation medium. More specific examples (a nonexhaustive list) ofthe computer-readable medium would include the following: an electricalconnection (electronic) having one or more wires, a portable computerdiskette (magnetic), a random access memory (RAM) (electronic), aread-only memory (ROM) (electronic), an erasable programmable read-onlymemory (EPROM or Flash memory) (electronic), an optical fiber (optical),and a portable compact disc read-only memory (CDROM) (optical). Notethat the computer-readable medium could even be paper or anothersuitable medium upon which the program is printed, as the program can beelectronically captured via, for instance, optical scanning of the paperor other medium, then compiled, interpreted or otherwise processed in asuitable manner if necessary, and then stored in a computer memory.

Although exemplary embodiments have been shown and described, it will beclear to those of ordinary skill in the art that a number of changes,modifications, or alterations to the invention as described may be made.For example, while a personal computer 110 a is shown as an exampleembodiment of a system, it should be appreciated that the system can beimplemented using other programmable devices, such as, for example, apersonal digital assistant (PDA), an Internet-capable cellulartelephone, etc.

Additionally, while some embodiments show localized processing of thevarious functions, those having skilled in the art will appreciate thatthe various functions can be provided in a distributed environment inwhich various servers provide the disclosed functions. In that regard,it should be appreciated that, rather than being a program residing on asingle computer, other embodiments contemplate a client-serverarchitecture in which various subroutines or code segments reside at aserver and are accessed by clients that generate requests for thosesubroutines. Since client-server environments are known in the art,further discussion of client-server environments is omitted here.

Also, for some embodiments, it should be appreciated that, rather thandirectly providing a substantially unsearchable image, the substantiallyunsearchable image can be indirectly provided by placing a universalresource locator (URL) for the image within the document. In thatregard, the images can be stored in a web-accessible repository, and theelectronic document can include the URL or link to the document in theweb-accessible repository. It should be appreciated that the correlationdatabase and/or storage of images could exist at separate locations fromthe web pages themselves that reference those images. For suchembodiments, the remote access can be provided as a service, which canbe charged to the user on a per-use basis or other commercial basis.This service can be similar to known banner advertising servermechanisms, which generate advertisements based upon a particular useraddress identifiers (e.g., Internet protocol (IP) address). Preferably,a one-to-one relationship can be implemented, in which a particular useraddress identifier is linked with a particular image. Thus, for example,should an administrator at a particular IP address wish to change animage that is linked to a URL, that administrator can automatically becharged a nominal fee in exchange for the convenience of a web-basedmechanism for altering that server-side image.

Moreover, for some embodiments, the text can be replaced with an inline“IMG” tag in hypertext markup language (HTML), which references an imagethat shows the text of the image in the same format as the originalbasic text. For those embodiments, the image conversion mechanism canalso be configured to track text format, size, font, and other textcharacteristics so that the image seamlessly appears as text within theelectronic document. Thus, for those embodiments, should the text of anelectronic document be changed, then corresponding changes to the imageswill take place throughout the document. In that regard, the editor canbe further configured to adaptively recognize and adapt the imagesautomatically, in response to various changes within the electronicdocument.

All such changes, modifications, and alterations should therefore beseen as within the scope of the disclosure.

1. A method comprising the steps of: receiving input from a user, theinput being indicative of a selection of a first image, the first imagecorresponding to a first text string; correlating the first image to itscorresponding first text string; and displaying the first text string tothe user.
 2. The method of claim 1, further comprising the steps of:receiving a second text string from the user, the second text stringrepresenting an edited first text string; generating a second image, thesecond image corresponding to the second text string; and storingcorrelation information correlating the second text string to the secondimage.
 3. The method of claim 2, wherein the step of receiving thesecond text string from the user comprises the step of: receiving thesecond text string over a network.
 4. The method of claim 2, wherein thestep of storing the correlation information comprises the step of:storing the correlation information at a server, the server beinglocated remotely over a network.
 5. The method of claim 2, wherein thestep of storing the correlation information comprises the step of:storing the correlation information at a local database.
 6. The methodof claim 2, further comprising the step of: replacing the first imagewith the second image.
 7. The method of claim 6, further comprising thestep of: deleting the first image.
 8. The method of claim 1, wherein thestep of correlating the image to its corresponding text string comprisesthe step of: accessing a database, the database providing correlationinformation for the image and the text string.
 9. The method of claim 1,wherein the step of receiving input from the user comprises the step of:receiving user input from a remote location.
 10. The method of claim 1,wherein the step of displaying the first text string to the usercomprises the step of: transmitting the first text string to a userlocation over a network.
 11. A computer-readable medium comprising:computer-readable code adapted to instruct a programmable device toreceive input from a user, the input being indicative of a selection ofa first image, the first image corresponding to a first text string;computer-readable code adapted to instruct a programmable device tocorrelate the first image to its corresponding first text string; andcomputer-readable code adapted to instruct a programmable device todisplay the first text string to the user.
 12. The computer-readablemedium of claim 11, further comprising: computer-readable code adaptedto instruct a programmable device to receive a second text string fromthe user, the second text string representing an edited first textstring; computer-readable code adapted to instruct a programmable deviceto generate a second image, the second image corresponding to the secondtext string; and computer-readable code adapted to instruct aprogrammable device to store correlation information correlating thesecond text string to the second image.
 13. The computer-readable mediumof claim 11, further comprising: means for receiving a second textstring from the user, the second text string representing an editedfirst text string; means for generating a second image, the second imagecorresponding to the second text string; and means for storingcorrelation information correlating the second text string to the secondimage.
 14. The computer-readable medium of claim 12, further comprising:computer-readable code adapted to instruct a programmable device toreplace the first image with the second image.
 15. The computer-readablemedium of claim 14, further comprising: computer-readable code adaptedto instruct a programmable device to delete the first image.
 16. Thecomputer-readable medium of claim 11, further comprising:computer-readable code adapted to instruct a programmable device toaccess a database, the database providing correlation information forthe image and the text string.
 17. A system comprising: image-selectionlogic configured to receive input from a user, the input beingindicative of a selection of a first image, the first imagecorresponding to a first text string; correlation logic configured tocorrelate the first image to its corresponding first text string; anddisplay logic configured to display the first text string to the user.18. The system of claim 17, further comprising: text-string logicconfigured to receive a second text string from the user, the secondtext string representing an edited first text string; image-generationlogic configured to generate a second image, the second imagecorresponding to the second text string; and store logic configured tostore correlation information correlating the second text string to thesecond image.
 19. The system of claim 18, further comprising:image-replacement logic configured to replace the first image with thesecond image.
 20. The system of claim 19, further comprising:image-delete logic configured to delete the first image.